#/bin/bash

# 源码目录名，根据实际情况修改
SOURCE_DIR="flask-module-src"
# 编译后目录名，根据实际情况修改
OBJ_DIR="flask_module"


# 遍历目录并在目录中创建__init__.py文件
function  dirTravel() {
    for element in `ls $1`
    do
        dir_or_file=$1"/"$element
        if [ -d $dir_or_file ];then
            # echo "find directory: $dir_or_file"
            objfile="$dir_or_file/__init__.py"
            rm -f $objfile >/dev/null 2>&1
            touch $objfile
            dirTravel $dir_or_file
        fi
    done
}

currentdate=`date +"%Y%m%d"`
echo "currentdate: $currentdate"

# 获取当前脚本绝对路径
homedir=$(dirname $(readlink -f "$0"))
echo "current work dir: $homedir"
cd $homedir

# 获取源码目录
src_dir="$homedir/$SOURCE_DIR"
#echo "src dir: $src_dir"

# 判读源码目录是否存在
if [ ! -d $src_dir ];then
    echo "can't find directory $src_dir, exit"
    exit -1
else
    echo "find directory $src_dir"
fi

# 判断源码目录中setup.py文件是否存在
setupfile="$src_dir/setup.py"
if [ ! -f $setupfile ];then
    echo "can't find file $setupfile, exit"
    exit -2
else
    echo "find file $setupfile"
fi

# 编译代码
cd $src_dir
echo "clear build directory"
rm -fr build >/dev/null 2>&1

echo "python setup.py build_ext"
python setup.py build_ext

echo "done"

libdir=`find $src_dir/build -maxdepth 1 -name "lib.linux*"`
echo "libdir $libdir"
if [ ! -d $libdir ];then
    echo "can't find directory $libdir, exit"
    exit -1
else
    echo "find directory $libdir"
fi

# 在目录中创建__init__.py文件
dirTravel $libdir

# 拷贝配置文件目录
rm -f config/*.pyc
cp -r config $libdir

# 拷贝启动文件，根据实际情况修改
cp main.py $libdir

# 拷贝appn中的__init__.py，根据实际情况修改
cp -f apps/app0/__init__.py $libdir/apps/app0/


# 创建版本文件
echo "$OBJ_DIR-$currentdate" >> $libdir/Version
cd -

# 构建脱敏app服务目录
appdir="$homedir/$OBJ_DIR"
rm -fr $appdir >/dev/null 2>&1
cp -r $libdir $appdir


# 打包
tar -zcvf "build_$OBJ_DIR-$currentdate.tgz" $OBJ_DIR

# 清理目录
rm -fr $src_dir/build
rm -fr $appdir

cd -
echo "build done"
